
import { OmitDto, Rule, RuleType } from "@midwayjs/validate";

export class BaseGradeDto{
	@Rule(RuleType.number().required().min(0))
	gradeId: number;

	@Rule(RuleType.number().optional().allow(null).allow('').min(0))
	deptId?: number;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	gradeName?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	createBy?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	createTime?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	updateBy?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	updateTime?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	remark?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	status?: string;

	@Rule(RuleType.string().optional().allow(null).allow('').max(500))
	delFlag?: string;

}
export class CreateGradeDto extends OmitDto(BaseGradeDto, ['gradeId']){}
export class UpdateGradeDto extends BaseGradeDto{}
export class QueryGradeDto extends CreateGradeDto{
  
  @Rule(RuleType.number().optional().min(0))
  pageNum?: number;

  @Rule(RuleType.number().optional().min(0))
  pageSize?: number;
}
export class ListGradeDto extends BaseGradeDto{}
